From: Jonas Jelonek Date: Fri, 7 Nov 2025 16:15:17 +0000 (+0000) Subject: realtek: rtl838x: setup SDS entirely in PCS driver X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22/%22https:/collectd.org/%22?a=commitdiff_plain;h=e956adfe3eb30f68a6f6e9bb8e25fc4fb422769e;p=openwrt%2Fopenwrt.git realtek: rtl838x: setup SDS entirely in PCS driver After having moved the configuration code and sequences from PHY and DSA drivers to the PCS driver, add the hooks in PCS driver and remove calls in PHY and DSA drivers to let PCS driver setup the SerDes entirely on its own. Also add pcs-handle to device tree definitions for most of the switch ports because, due to the refactoring of the SerDes configuration, this is needed now for all SerDes-attached ports. Signed-off-by: Jonas Jelonek Link: https://github.com/openwrt/openwrt/pull/20876 Signed-off-by: Hauke Mehrtens --- diff --git a/target/linux/realtek/dts/rtl8380_netgear_gs110tup-v1.dts b/target/linux/realtek/dts/rtl8380_netgear_gs110tup-v1.dts index f34e9f7d96..b46aa57226 100644 --- a/target/linux/realtek/dts/rtl8380_netgear_gs110tup-v1.dts +++ b/target/linux/realtek/dts/rtl8380_netgear_gs110tup-v1.dts @@ -53,7 +53,18 @@ &switch0 { ports { SWITCH_PORT(16, 9, qsgmii) + /* TODO: fixed link SFP is not right */ - SWITCH_SFP_PORT(24, 10, rgmii-id) + port24: port@24 { + reg = <24>; + label = SWITCH_PORT_LABEL(10); + pcs-handle = <&serdes4>; + phy-handle = <&phy24>; + phy-mode = "1000base-x"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; }; }; diff --git a/target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts b/target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts index 5219e926ec..636046ed1b 100644 --- a/target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts +++ b/target/linux/realtek/dts/rtl8380_netgear_gs310tp-v1.dts @@ -57,7 +57,28 @@ &switch0 { ports { /* TODO: fixed link SFP is not right */ - SWITCH_SFP_PORT(24, 9, 1000base-x) - SWITCH_SFP_PORT(26, 10, 1000base-x) + + port24: port@24 { + reg = <24>; + label = SWITCH_PORT_LABEL(9); + pcs-handle = <&serdes4>; + phy-handle = <&phy24>; + phy-mode = "1000base-x"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + port26: port@26 { + reg = <26>; + label = SWITCH_PORT_LABEL(10); + pcs-handle = <&serdes5>; + phy-handle = <&phy26>; + phy-mode = "1000base-x"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; }; }; diff --git a/target/linux/realtek/dts/rtl8380_tplink_sg2xxx.dtsi b/target/linux/realtek/dts/rtl8380_tplink_sg2xxx.dtsi index 7249d52275..3854d5cf8b 100644 --- a/target/linux/realtek/dts/rtl8380_tplink_sg2xxx.dtsi +++ b/target/linux/realtek/dts/rtl8380_tplink_sg2xxx.dtsi @@ -168,8 +168,28 @@ SWITCH_PORT(8, 8, internal) /* TODO: fixed link SFP is not right */ - SWITCH_SFP_PORT(24, 9, 1000base-x) - SWITCH_SFP_PORT(26, 10, 1000base-x) + port24: port@24 { + reg = <24>; + label = SWITCH_PORT_LABEL(9); + pcs-handle = <&serdes4>; + phy-handle = <&phy24>; + phy-mode = "1000base-x"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + port26: port@26 { + reg = <26>; + label = SWITCH_PORT_LABEL(10); + pcs-handle = <&serdes5>; + phy-handle = <&phy26>; + phy-mode = "1000base-x"; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_apresia_aplgs120gtss.dts b/target/linux/realtek/dts/rtl8382_apresia_aplgs120gtss.dts index 3d2adb27a4..db14e7963b 100644 --- a/target/linux/realtek/dts/rtl8382_apresia_aplgs120gtss.dts +++ b/target/linux/realtek/dts/rtl8382_apresia_aplgs120gtss.dts @@ -229,14 +229,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -247,10 +247,10 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(24, 17, qsgmii) - SWITCH_PORT(25, 18, qsgmii) - SWITCH_PORT(26, 19, qsgmii) - SWITCH_PORT(27, 20, qsgmii) + SWITCH_PORT_SDS(24, 17, 4, qsgmii) + SWITCH_PORT_SDS(25, 18, 4, qsgmii) + SWITCH_PORT_SDS(26, 19, 4, qsgmii) + SWITCH_PORT_SDS(27, 20, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-16.dts b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-16.dts index 022902f356..1591ae349a 100644 --- a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-16.dts +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-16.dts @@ -39,14 +39,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -57,10 +57,10 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(24, 17, qsgmii) - SWITCH_PORT(25, 18, qsgmii) - SWITCH_PORT(26, 19, qsgmii) - SWITCH_PORT(27, 20, qsgmii) + SWITCH_PORT_SDS(24, 17, 4, qsgmii) + SWITCH_PORT_SDS(25, 18, 4, qsgmii) + SWITCH_PORT_SDS(26, 19, 4, qsgmii) + SWITCH_PORT_SDS(27, 20, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-20.dts b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-20.dts index 601d2980d6..0cf6ffb00c 100644 --- a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-20.dts +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-20.dts @@ -39,14 +39,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -57,10 +57,10 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(24, 17, qsgmii) - SWITCH_PORT(25, 18, qsgmii) - SWITCH_PORT(26, 19, qsgmii) - SWITCH_PORT(27, 20, qsgmii) + SWITCH_PORT_SDS(24, 17, 4, qsgmii) + SWITCH_PORT_SDS(25, 18, 4, qsgmii) + SWITCH_PORT_SDS(26, 19, 4, qsgmii) + SWITCH_PORT_SDS(27, 20, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-26.dts b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-26.dts index 1102ae9424..34611e101e 100644 --- a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-26.dts +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-26.dts @@ -82,14 +82,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -100,14 +100,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@24 { reg = <24>; diff --git a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28_common.dtsi b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28_common.dtsi index fe07078c2b..65e5646db4 100644 --- a/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28_common.dtsi +++ b/target/linux/realtek/dts/rtl8382_d-link_dgs-1210-28_common.dtsi @@ -40,14 +40,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -58,19 +58,19 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) - SWITCH_PORT(24, 25, qsgmii) - SWITCH_PORT(25, 26, qsgmii) - SWITCH_PORT(26, 27, qsgmii) - SWITCH_PORT(27, 28, qsgmii) + SWITCH_PORT_SDS(24, 25, 4, qsgmii) + SWITCH_PORT_SDS(25, 26, 4, qsgmii) + SWITCH_PORT_SDS(26, 27, 4, qsgmii) + SWITCH_PORT_SDS(27, 28, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_hpe_1920-16g.dts b/target/linux/realtek/dts/rtl8382_hpe_1920-16g.dts index 59043b2f6f..3e10cd62be 100644 --- a/target/linux/realtek/dts/rtl8382_hpe_1920-16g.dts +++ b/target/linux/realtek/dts/rtl8382_hpe_1920-16g.dts @@ -21,19 +21,19 @@ SWITCH_PORT(14, 7, internal) SWITCH_PORT(15, 8, internal) - SWITCH_PORT(16, 9, qsgmii) - SWITCH_PORT(17, 10, qsgmii) - SWITCH_PORT(18, 11, qsgmii) - SWITCH_PORT(19, 12, qsgmii) - SWITCH_PORT(20, 13, qsgmii) - SWITCH_PORT(21, 14, qsgmii) - SWITCH_PORT(22, 15, qsgmii) - SWITCH_PORT(23, 16, qsgmii) + SWITCH_PORT_SDS(16, 9, 2, qsgmii) + SWITCH_PORT_SDS(17, 10, 2, qsgmii) + SWITCH_PORT_SDS(18, 11, 2, qsgmii) + SWITCH_PORT_SDS(19, 12, 2, qsgmii) + SWITCH_PORT_SDS(20, 13, 3, qsgmii) + SWITCH_PORT_SDS(21, 14, 3, qsgmii) + SWITCH_PORT_SDS(22, 15, 3, qsgmii) + SWITCH_PORT_SDS(23, 16, 3, qsgmii) - SWITCH_PORT(24, 17, qsgmii) - SWITCH_PORT(25, 18, qsgmii) - SWITCH_PORT(26, 19, qsgmii) - SWITCH_PORT(27, 20, qsgmii) + SWITCH_PORT_SDS(24, 17, 4, qsgmii) + SWITCH_PORT_SDS(25, 18, 4, qsgmii) + SWITCH_PORT_SDS(26, 19, 4, qsgmii) + SWITCH_PORT_SDS(27, 20, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_hpe_1920-24g.dtsi b/target/linux/realtek/dts/rtl8382_hpe_1920-24g.dtsi index 7358961943..a7cc555fa2 100644 --- a/target/linux/realtek/dts/rtl8382_hpe_1920-24g.dtsi +++ b/target/linux/realtek/dts/rtl8382_hpe_1920-24g.dtsi @@ -23,14 +23,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -41,19 +41,19 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) - SWITCH_PORT(24, 25, qsgmii) - SWITCH_PORT(25, 26, qsgmii) - SWITCH_PORT(26, 27, qsgmii) - SWITCH_PORT(27, 28, qsgmii) + SWITCH_PORT_SDS(24, 25, 4, qsgmii) + SWITCH_PORT_SDS(25, 26, 4, qsgmii) + SWITCH_PORT_SDS(26, 27, 4, qsgmii) + SWITCH_PORT_SDS(27, 28, 4, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_inaba_aml2-17gp.dts b/target/linux/realtek/dts/rtl8382_inaba_aml2-17gp.dts index c3683dc6a8..9d60abc1fd 100644 --- a/target/linux/realtek/dts/rtl8382_inaba_aml2-17gp.dts +++ b/target/linux/realtek/dts/rtl8382_inaba_aml2-17gp.dts @@ -121,14 +121,14 @@ SWITCH_PORT(14, 7, internal) SWITCH_PORT(15, 8, internal) - SWITCH_PORT(16, 9, qsgmii) - SWITCH_PORT(17, 10, qsgmii) - SWITCH_PORT(18, 11, qsgmii) - SWITCH_PORT(19, 12, qsgmii) - SWITCH_PORT(20, 13, qsgmii) - SWITCH_PORT(21, 14, qsgmii) - SWITCH_PORT(22, 15, qsgmii) - SWITCH_PORT(23, 16, qsgmii) + SWITCH_PORT_SDS(16, 9, 2, qsgmii) + SWITCH_PORT_SDS(17, 10, 2, qsgmii) + SWITCH_PORT_SDS(18, 11, 2, qsgmii) + SWITCH_PORT_SDS(19, 12, 2, qsgmii) + SWITCH_PORT_SDS(20, 13, 3, qsgmii) + SWITCH_PORT_SDS(21, 14, 3, qsgmii) + SWITCH_PORT_SDS(22, 15, 3, qsgmii) + SWITCH_PORT_SDS(23, 16, 3, qsgmii) port@24 { reg = <24>; diff --git a/target/linux/realtek/dts/rtl8382_iodata_bsh-g24mb.dts b/target/linux/realtek/dts/rtl8382_iodata_bsh-g24mb.dts index b2dd2dff8c..4f2b209e80 100644 --- a/target/linux/realtek/dts/rtl8382_iodata_bsh-g24mb.dts +++ b/target/linux/realtek/dts/rtl8382_iodata_bsh-g24mb.dts @@ -155,14 +155,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -173,14 +173,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_panasonic_m16eg-pn28160k.dts b/target/linux/realtek/dts/rtl8382_panasonic_m16eg-pn28160k.dts index b2bc975722..17ed20e076 100644 --- a/target/linux/realtek/dts/rtl8382_panasonic_m16eg-pn28160k.dts +++ b/target/linux/realtek/dts/rtl8382_panasonic_m16eg-pn28160k.dts @@ -140,14 +140,14 @@ SWITCH_PORT(14, 7, internal) SWITCH_PORT(15, 8, internal) - SWITCH_PORT(16, 9, qsgmii) - SWITCH_PORT(17, 10, qsgmii) - SWITCH_PORT(18, 11, qsgmii) - SWITCH_PORT(19, 12, qsgmii) - SWITCH_PORT(20, 13, qsgmii) - SWITCH_PORT(21, 14, qsgmii) - SWITCH_PORT(22, 15, qsgmii) - SWITCH_PORT(23, 16, qsgmii) + SWITCH_PORT_SDS(16, 9, 2, qsgmii) + SWITCH_PORT_SDS(17, 10, 2, qsgmii) + SWITCH_PORT_SDS(18, 11, 2, qsgmii) + SWITCH_PORT_SDS(19, 12, 2, qsgmii) + SWITCH_PORT_SDS(20, 13, 3, qsgmii) + SWITCH_PORT_SDS(21, 14, 3, qsgmii) + SWITCH_PORT_SDS(22, 15, 3, qsgmii) + SWITCH_PORT_SDS(23, 16, 3, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_panasonic_m24eg-pn28240k.dts b/target/linux/realtek/dts/rtl8382_panasonic_m24eg-pn28240k.dts index 41df49f0aa..ccd49ad3ca 100644 --- a/target/linux/realtek/dts/rtl8382_panasonic_m24eg-pn28240k.dts +++ b/target/linux/realtek/dts/rtl8382_panasonic_m24eg-pn28240k.dts @@ -141,14 +141,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -159,14 +159,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_tplink_t1600g-28ts-v3.dts b/target/linux/realtek/dts/rtl8382_tplink_t1600g-28ts-v3.dts index 20e0a868c6..6bb0d807a8 100644 --- a/target/linux/realtek/dts/rtl8382_tplink_t1600g-28ts-v3.dts +++ b/target/linux/realtek/dts/rtl8382_tplink_t1600g-28ts-v3.dts @@ -128,14 +128,14 @@ #address-cells = <1>; #size-cells = <0>; - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -146,14 +146,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@28 { ethernet = <ðernet0>; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-16-a1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-16-a1.dts index 846ddce777..4fe7a59389 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-16-a1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-16-a1.dts @@ -21,14 +21,14 @@ &switch0 { ports { - SWITCH_PORT(16, 9, qsgmii) - SWITCH_PORT(17, 10, qsgmii) - SWITCH_PORT(18, 11, qsgmii) - SWITCH_PORT(19, 12, qsgmii) - SWITCH_PORT(20, 13, qsgmii) - SWITCH_PORT(21, 14, qsgmii) - SWITCH_PORT(22, 15, qsgmii) - SWITCH_PORT(23, 16, qsgmii) + SWITCH_PORT_SDS(16, 9, 2, qsgmii) + SWITCH_PORT_SDS(17, 10, 2, qsgmii) + SWITCH_PORT_SDS(18, 11, 2, qsgmii) + SWITCH_PORT_SDS(19, 12, 2, qsgmii) + SWITCH_PORT_SDS(20, 13, 3, qsgmii) + SWITCH_PORT_SDS(21, 14, 3, qsgmii) + SWITCH_PORT_SDS(22, 15, 3, qsgmii) + SWITCH_PORT_SDS(23, 16, 3, qsgmii) }; }; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24-a1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24-a1.dts index b83328b03c..63c96a88ae 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24-a1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24-a1.dts @@ -79,14 +79,14 @@ &switch0 { ports { - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -97,14 +97,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@24 { reg = <24>; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24e-a1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24e-a1.dts index 1f2a565d81..c54648cc32 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24e-a1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24e-a1.dts @@ -30,14 +30,14 @@ &switch0 { ports { - SWITCH_PORT(1, 1, qsgmii) - SWITCH_PORT(0, 2, qsgmii) - SWITCH_PORT(3, 3, qsgmii) - SWITCH_PORT(2, 4, qsgmii) - SWITCH_PORT(5, 5, qsgmii) - SWITCH_PORT(4, 6, qsgmii) - SWITCH_PORT(7, 7, qsgmii) - SWITCH_PORT(6, 8, qsgmii) + SWITCH_PORT_SDS(1, 1, 0, qsgmii) + SWITCH_PORT_SDS(0, 2, 0, qsgmii) + SWITCH_PORT_SDS(3, 3, 0, qsgmii) + SWITCH_PORT_SDS(2, 4, 0, qsgmii) + SWITCH_PORT_SDS(5, 5, 1, qsgmii) + SWITCH_PORT_SDS(4, 6, 1, qsgmii) + SWITCH_PORT_SDS(7, 7, 1, qsgmii) + SWITCH_PORT_SDS(6, 8, 1, qsgmii) SWITCH_PORT(9, 9, internal) SWITCH_PORT(8, 10, internal) @@ -48,14 +48,14 @@ SWITCH_PORT(15, 15, internal) SWITCH_PORT(14, 16, internal) - SWITCH_PORT(17, 17, qsgmii) - SWITCH_PORT(16, 18, qsgmii) - SWITCH_PORT(19, 19, qsgmii) - SWITCH_PORT(18, 20, qsgmii) - SWITCH_PORT(21, 21, qsgmii) - SWITCH_PORT(20, 22, qsgmii) - SWITCH_PORT(23, 23, qsgmii) - SWITCH_PORT(22, 24, qsgmii) + SWITCH_PORT_SDS(17, 17, 2, qsgmii) + SWITCH_PORT_SDS(16, 18, 2, qsgmii) + SWITCH_PORT_SDS(19, 19, 2, qsgmii) + SWITCH_PORT_SDS(18, 20, 2, qsgmii) + SWITCH_PORT_SDS(21, 21, 3, qsgmii) + SWITCH_PORT_SDS(20, 22, 3, qsgmii) + SWITCH_PORT_SDS(23, 23, 3, qsgmii) + SWITCH_PORT_SDS(22, 24, 3, qsgmii) }; }; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24ep-a1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24ep-a1.dts index b4d07dd2d5..e3006d77a4 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24ep-a1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24ep-a1.dts @@ -34,14 +34,14 @@ &switch0 { ports { - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -52,13 +52,13 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) }; }; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-a1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-a1.dts index fb388e0a34..8c8bc0b2ba 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-a1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-a1.dts @@ -79,14 +79,14 @@ &switch0 { ports { - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -97,14 +97,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@24 { reg = <24>; diff --git a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-b1.dts b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-b1.dts index fba5d0eb05..42f631316c 100644 --- a/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-b1.dts +++ b/target/linux/realtek/dts/rtl8382_zyxel_gs1900-24hp-b1.dts @@ -75,14 +75,14 @@ &switch0 { ports { - SWITCH_PORT(0, 1, qsgmii) - SWITCH_PORT(1, 2, qsgmii) - SWITCH_PORT(2, 3, qsgmii) - SWITCH_PORT(3, 4, qsgmii) - SWITCH_PORT(4, 5, qsgmii) - SWITCH_PORT(5, 6, qsgmii) - SWITCH_PORT(6, 7, qsgmii) - SWITCH_PORT(7, 8, qsgmii) + SWITCH_PORT_SDS(0, 1, 0, qsgmii) + SWITCH_PORT_SDS(1, 2, 0, qsgmii) + SWITCH_PORT_SDS(2, 3, 0, qsgmii) + SWITCH_PORT_SDS(3, 4, 0, qsgmii) + SWITCH_PORT_SDS(4, 5, 1, qsgmii) + SWITCH_PORT_SDS(5, 6, 1, qsgmii) + SWITCH_PORT_SDS(6, 7, 1, qsgmii) + SWITCH_PORT_SDS(7, 8, 1, qsgmii) SWITCH_PORT(8, 9, internal) SWITCH_PORT(9, 10, internal) @@ -93,14 +93,14 @@ SWITCH_PORT(14, 15, internal) SWITCH_PORT(15, 16, internal) - SWITCH_PORT(16, 17, qsgmii) - SWITCH_PORT(17, 18, qsgmii) - SWITCH_PORT(18, 19, qsgmii) - SWITCH_PORT(19, 20, qsgmii) - SWITCH_PORT(20, 21, qsgmii) - SWITCH_PORT(21, 22, qsgmii) - SWITCH_PORT(22, 23, qsgmii) - SWITCH_PORT(23, 24, qsgmii) + SWITCH_PORT_SDS(16, 17, 2, qsgmii) + SWITCH_PORT_SDS(17, 18, 2, qsgmii) + SWITCH_PORT_SDS(18, 19, 2, qsgmii) + SWITCH_PORT_SDS(19, 20, 2, qsgmii) + SWITCH_PORT_SDS(20, 21, 3, qsgmii) + SWITCH_PORT_SDS(21, 22, 3, qsgmii) + SWITCH_PORT_SDS(22, 23, 3, qsgmii) + SWITCH_PORT_SDS(23, 24, 3, qsgmii) port@24 { diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c index 6115c48f30..52a6dd7345 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c @@ -408,13 +408,6 @@ static int __init rtl83xx_mdio_probe(struct rtl838x_switch_priv *priv) sw_w32_mask(BIT(7), 0, RTL839X_SMI_GLB_CTRL); } - /* Power on fibre ports and reset them if necessary */ - if (priv->ports[24].phy == PHY_RTL838X_SDS) { - pr_debug("Powering on fibre ports & reset\n"); - rtl8380_sds_power(24, 1); - rtl8380_sds_power(26, 1); - } - return 0; } diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c index b8c944425e..66f4c6c148 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c @@ -652,6 +652,7 @@ static struct phylink_pcs *rtldsa_phylink_mac_select_pcs(struct dsa_switch *ds, return priv->pcs[port]; } +__attribute__((unused)) static void rtl83xx_config_interface(int port, phy_interface_t interface) { u32 old, int_shift, sds_shift; @@ -754,7 +755,7 @@ static void rtl83xx_phylink_mac_config(struct dsa_switch *ds, int port, mcr = sw_r32(priv->r->mac_force_mode_ctrl(port)); if (mode == MLO_AN_PHY || phylink_autoneg_inband(mode)) { pr_debug("port %d PHY autonegotiates\n", port); - rtl83xx_config_interface(port, state->interface); + mcr |= RTL838X_NWAY_EN; } else { mcr &= ~RTL838X_NWAY_EN; diff --git a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c index fff84a3e84..e41c89e713 100644 --- a/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c +++ b/target/linux/realtek/files-6.12/drivers/net/pcs/pcs-rtl-otto.c @@ -453,7 +453,6 @@ static int rtpcs_838x_sds_patch(struct rtpcs_ctrl *ctrl, u32 sds, return 0; } -__always_unused static int rtpcs_838x_init_serdes_common(struct rtpcs_ctrl *ctrl) { u32 val; @@ -474,7 +473,6 @@ static int rtpcs_838x_init_serdes_common(struct rtpcs_ctrl *ctrl) return 0; } -__always_unused static int rtpcs_838x_setup_serdes(struct rtpcs_ctrl *ctrl, int sds, phy_interface_t mode) { @@ -3101,6 +3099,8 @@ static const struct rtpcs_config rtpcs_838x_cfg = { .mac_rx_pause_sts = RTPCS_838X_MAC_RX_PAUSE_STS, .mac_tx_pause_sts = RTPCS_838X_MAC_TX_PAUSE_STS, .pcs_ops = &rtpcs_838x_pcs_ops, + .init_serdes_common = rtpcs_838x_init_serdes_common, + .setup_serdes = rtpcs_838x_setup_serdes, }; static const struct phylink_pcs_ops rtpcs_839x_pcs_ops = { diff --git a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c index fe72beded3..04b673e0c0 100644 --- a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c +++ b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c @@ -146,6 +146,7 @@ static void rtl8380_phy_reset(struct phy_device *phydev) /* Read the link and speed status of the 2 internal SGMII/1000Base-X * ports of the RTL838x SoCs */ +__attribute__((unused)) static int rtl8380_read_status(struct phy_device *phydev) { int err; @@ -1107,14 +1108,7 @@ static int rtl838x_serdes_probe(struct phy_device *phydev) if (addr < 24) return -ENODEV; - /* On the RTL8380M, PHYs 24-27 connect to the internal SerDes */ - if (soc_info.id == 0x8380) { - if (addr == 24) - return rtl8380_configure_serdes(phydev); - return 0; - } - - return -ENODEV; + return 0; } static int rtl8393_serdes_probe(struct phy_device *phydev)